package com.yakaten.utils;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.stream.FileImageInputStream;

import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;

public class MakeShopToMakeShop {

	// 商品名(※ 必須)
	// 表示ステータス(公開・非公開) [省略時初期値: 2]
	// 商品コード
	// 一覧-メインコメント(※ 必須)
	// 詳細-メインコメント(※ 必須)
	// 在庫数
	// 販売価格(※ 必須)
	// カテゴリID(※ 必須)
	// 詳細-サブタイトル(1)
	// 詳細-サブコメント(1)
	private static String tile = "商品特定コード指定,更新時間フラグ,システム商品コード,独自商品コード,カテゴリー識別コード,カテゴリーパス,商品名,重量,販売価格,定価,ポイント,仕入価格,製造元,原産地,原産地表示フラグ,数量,数量表示フラグ,最小注文限度数,最大注文限度数,陳列位置,送料個別設定,掲載開始日指定フラグ,掲載開始日,掲載終了日指定フラグ,掲載終了日,割引使用フラグ,割引率,割引期間,商品グループ,商品検索語,商品別特殊表示,オプション１名称,オプション２名称,オプショングループ,拡大画像名,普通画像名,縮小画像名,モバイル画像名,追加商品画像1,追加商品画像モバイル表示1,画像説明文1,追加商品画像2,追加商品画像モバイル表示2,画像説明文2,追加商品画像3,追加商品画像モバイル表示3,画像説明文3,レイアウト指定,モバイル商品説明,PC用メイン商品説明文,JANコード,商品表示可否,商品状態フラグ,データ用商品名,データ用詳細内容,オプションの表示形式,ISBNコード,ブランド名,MPN(メーカー型番),Googleショッピングカテゴリー,性別,年齢層,色,サイズ,素材,柄,商品グループID,アドワーズ用グループ,アドワーズ用ラベル,商品ページURL,商品カテゴリー用商品説明文,商品カテゴリー用商品説明文表示可否,備考欄表示テキスト指定,スマホ商品説明1,スマホ商品説明2,スマホ商品説明1にモバイル表示,再入荷お知らせ,決済グループ,PC用追加説明文,名入れグループ,消費税率"
;

	private static String WORK_FOLDER="C:/Users/ryu/Desktop/emarket/";

	private static void checkWorkFolder(){
		File workFolder = new File(WORK_FOLDER);

	}
	public static void main(String[] args) {

		CSVWriter writer = null;
		try {
			CSVReader reader = new CSVReader(new InputStreamReader(	new FileInputStream(new File(
					WORK_FOLDER+"upload_20140519225339.csv")),
					"shift-jis"), ',', '"', 1);

//			writer = new CSVWriter(new FileWriter(WORK_FOLDER+"upload.csv"), ',');
			writer = new CSVWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(WORK_FOLDER+"upload.csv"),"shift_jis")), ',');

			// feed in your array (or convert your data to an array)

			String sep = ",";
			String[] nextLine;
			while ((nextLine = reader.readNext()) != null) {
				// nextLine[] is an array of values from the line
//				if("1".equals(nextLine[54])){
//					System.out.println(
//							nextLine[2]//itemid
//							+ sep
//							+ nextLine[3] //jancd
//							+ sep
//							+ nextLine[4] //category_id
//							+ sep
//							+ nextLine[5] //category_name
//							+ sep
//							+ nextLine[6]  //item_name
//							+ sep
//							+ nextLine[8]//price
//							+ sep
//							+ nextLine[15] //zaikou
//							+ sep
//							+ nextLine[53] //商品表示可否
////							+ sep
////							+ nextLine[49].replaceAll("\r\n", "").replaceAll("\n","")
//							);
//				}


//				System.out.println("http://tokyodenki.shop33.makeshop.jp/shopimages/tokyodenki/"+nextLine[2]+".jpg");
//				writer.writeNext(new String[]{"http://tokyodenki.shop33.makeshop.jp/shopimages/tokyodenki/"+nextLine[2]+".jpg"});
//				if( nextLine[6]!=null && !"".equals( nextLine[6])){
					String[] entries =getNewData(nextLine);
					writer.writeNext(entries);
//				}
//				 break;

			}
		} catch (FileNotFoundException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} finally {
			try {
				if (writer != null) {
					writer.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static String [] getNewData(String [] nextLine){
		String[] entries = new String[81];

		entries[0] = 	"0";	// 商品特定コード指定
		entries[3] = 	nextLine[3];// 独自商品コード
		entries[5] = 	nextLine[5].replaceFirst("ノートパソコン", "ノートパソコンadf");// category
		entries[6] = 	nextLine[6];// 商品名(※ 必須)
		double tmpPrice = Double.parseDouble(nextLine[8]);
		entries[8] = 	""+(((int)Math.ceil(tmpPrice)));// 販売価格(※ 必須)
		entries[34] = 	"http://tokyodenki.shop33.makeshop.jp/shopimages/tokyodenki/"+nextLine[2]+".jpg";// 販売価格(※ 必須)
		entries[80]="8";
		return entries;
	}

	public static String changeCategory(String old){
		Map<String,String > categoryMap = new HashMap<String,String>();
		categoryMap.put("ct9","7");
		categoryMap.put("ct2","8");
		categoryMap.put("ct3","9");
		categoryMap.put("ct4","10");
		categoryMap.put("ct5","11");
		categoryMap.put("ct6","12");
		categoryMap.put("ct7","13");
		categoryMap.put("ct8","14");
		categoryMap.put("ct10","15");
		categoryMap.put("ct11","16");
		categoryMap.put("ct12","17");
		categoryMap.put("ct13","22");
		categoryMap.put("ct38","22");
		categoryMap.put("ct14","32");
		categoryMap.put("ct39","32");
		categoryMap.put("ct15","19");
		categoryMap.put("ct36","19");
		categoryMap.put("ct16","20");
		categoryMap.put("ct37","20");
		categoryMap.put("ct17","23");
		categoryMap.put("ct40","23");
		categoryMap.put("ct18","24");
		categoryMap.put("ct41","24");
		categoryMap.put("ct19","25");
		categoryMap.put("ct42","25");
		categoryMap.put("ct20","26");
		categoryMap.put("ct43","26");
		categoryMap.put("ct21","27");
		categoryMap.put("ct44","27");
		categoryMap.put("ct22","36");
		categoryMap.put("ct45","36");
		categoryMap.put("ct23","30");
		categoryMap.put("ct25","30");
		categoryMap.put("ct24","31");
		categoryMap.put("ct1","31");
		categoryMap.put("ct26","32");
		categoryMap.put("ct46","32");
		categoryMap.put("ct27","33");
		categoryMap.put("ct47","33");
		categoryMap.put("ct28","34");
		categoryMap.put("ct48","34");
		categoryMap.put("ct29","35");
		categoryMap.put("ct49","35");
		categoryMap.put("ct30","36");
		categoryMap.put("ct50","36");
		categoryMap.put("ct31","37");
		categoryMap.put("ct51","37");
		categoryMap.put("ct32","28");
		categoryMap.put("ct52","28");
		categoryMap.put("ct33","41");
		categoryMap.put("ct53","41");
		categoryMap.put("ct34","44");
		categoryMap.put("ct54","44");
		categoryMap.put("ct35","18");
		categoryMap.put("ct55","43");
		categoryMap.put("ct56","43");
		categoryMap.put("ct57","45");
		categoryMap.put("ct58","46");
		categoryMap.put("","47");

		String newCategory = categoryMap.get(old);

		if(newCategory ==null ||"".equals(newCategory))
		{
			newCategory = "47";
		}
		return newCategory;
	}
}
